iT邦幫忙

2022 iThome 鐵人賽

DAY 5
0
Mobile Development

IOS新手之旅系列 第 5

IOS新手之旅 Day5:計時器(2)

  • 分享至 

  • xImage
  •  

昨天設定好計時器的PickerView了,今天來增加其中一個Button的功能吧。

開始與暫停

這裡是用跟碼表一樣的方式來切換Button的狀態,在按下開始的同時隱藏PickerView,將Label顯示出來。

    @IBAction func StartOrStop(_ sender: Any) {
        if timeInterval == 0{
            timeInterval = (hour * 3600 + minute * 60 + second) * 100
        }
        if startStauts {
            startStauts = false
            
            TimerPickerView.isHidden = true
            
            TimeLabel.isHidden = false
            
            StartStopButton.setTitle("暫停", for: .normal)
            StartStopButton.setTitleColor(.red, for: .normal)
            
            CancelButton.isEnabled = true
            CancelButton.setTitleColor(.black, for: .normal)
            
            timer = Timer.scheduledTimer(timeInterval: TimeInterval(0.01), target: self, selector: #selector(countDown), userInfo: nil, repeats: true)
        }else{
            startStauts = true
            
            StartStopButton.setTitle("繼續", for: .normal)
            StartStopButton.setTitleColor(.green, for: .normal)
            
            timer.invalidate()
        }
    }
    

Timer

這裡的Timer的函式設定成當秒數不為零的時候才會動作。

    @objc func countDown(){
        if timeInterval != 0{
            timeInterval -= 1
            
            calcuSec = (timeInterval / 100) % 60
            calcuMin = (timeInterval / 6000) % 60
            calcuHor = (timeInterval / 360000) % 24
            
            TimeLabel.text = String(format: "%02d:%02d:%02d", arguments: [calcuHor, calcuMin, calcuSec])
        }

到這裡就是今天的進度了,明天繼續幫另外一個Button加上功能,然後補上alert。


上一篇
IOS新手之旅 Day4:計時器(1)
下一篇
IOS新手之旅 Day6:計時器(3)
系列文
IOS新手之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言